package org.面试题.Synchronized;

import java.util.concurrent.TimeUnit;

/**
 * Person 类中的方法上锁，线程A B 获调用对象person的两个同步方法， synchronized锁是同一个对象的调用者
 * 谁先拿到谁先执行。
 */
public class synchronizedDemo {
    public static void main(String[] args) {
        Person person = new Person();

        new Thread(person::send,"A").start();

        try {
            TimeUnit.SECONDS.sleep(2);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        new Thread(person::send,"B").start();
    }

}
class Person{
    public  synchronized void send(){
        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(Thread.currentThread().getName()+"发消息");
    }

    public  synchronized void call(){
        System.out.println("打电话");
    }
}
